#!/usr/bin/env python3
# -*- coding: utf-8 -*-
__author__ = '汤小洋'

'''
列表list
'''
# 定义列表，使用中括号[]
names = ['tom', 'jack', 'mike', 'alex', 'tom']
print(names)
print(type(names))

# 获取元素
print(names[1])
print(names[len(names) - 1], names[-1]) # 调用len()获取总个数
print(names[1:3])

# 修改元素
names[0] = 'mike'

# 追加元素
names.append('alice')

# 插入元素
names.insert(1, 'lucy')

# 删除指定的元素
names.remove('jack')

# 删除(弹出)指定位置的元素，并返回该元素
print(names.pop(1))
print(names.pop())  # 默认删除最后一个

# 使用del关键字删除元素
del names[0]
del names[2:4]

# 统计指定元素出现的次数
print(names.count('tom'))

# 将列表中元素反转
names.reverse()

# 排序
names.sort(reverse=True)  # 默认按升序，可指定reverse=True表示降序
print(names)

# 判断是否包含指定的元素
print('tom' in names)

# 复制，返回一个新list
names2 = names.copy()  # 在内存中新建一个列表
print(names2)

# 清空
names.clear()

# 可以存储不同类型的元素
names.append(12)  # 不建议
names.append(True)
print(names)

# 创建一个空列表，两种方法
ls = []
ls = list()

# 将其他类型转换为list
print(list('hello'))

print('------------------------------------')

'''
元组tuple
'''
# 定义元组，使用小括号()
nums = (4, 67, 23, 2, 51)
print(nums)
print(type(nums))

# 获取元素
print(nums[2])
print(nums[1:3])

# 不能修改
# nums[0] = 66

# 解构赋值：拆解结构并按对应位置提取值，依次为变量赋值
a, b, c, d, e = nums
print(a, b)

'''
栈和堆
'''
